#include <linux/fs.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/delay.h>
#include <linux/uaccess.h>
#include <linux/io.h>
#include <linux/cdev.h>
#include <linux/gpio.h>
#include <linux/list.h>
#include <linux/slab.h>
#include <linux/i2c.h>
#include <linux/err.h>
#include <linux/kernel.h>
#include <linux/device.h>
#include <linux/delay.h>
#include <linux/platform_device.h>
#include <linux/of_address.h>
#include <linux/leds.h>
#include <linux/gpio.h>
#include <linux/input.h>
#include <linux/gpio_keys.h>
#include "../gpio_clk_driver/gpio_clk_driver.h"

static struct gpio_clk_gate_platform_data virt_gpio_clk_gate_info =
{
	.enable_gpio_index = 258,
	.active_low = 0,
};




static void virt_gpio_clk_gate_release(struct device *dev)
{

}
static struct platform_device virt_gpio_clk_gate_device = {
	.name = "virt_gpio_clk",
	.id = -1,
	.dev = {
		.platform_data = &virt_gpio_clk_gate_info,
		.release = virt_gpio_clk_gate_release,
	}
};



static int __init virt_gpio_clk_gate_dev_init(void)
{
	int ret = 0;

	printk("%s:%d\n", __FUNCTION__, __LINE__);
	ret = platform_device_register(&virt_gpio_clk_gate_device);

	return ret;
}

static void __exit virt_gpio_clk_gate_dev_exit(void)
{
    printk("%s:%d\n", __FUNCTION__, __LINE__);
    platform_device_unregister(&virt_gpio_clk_gate_device);
}



module_init(virt_gpio_clk_gate_dev_init);
module_exit(virt_gpio_clk_gate_dev_exit);
MODULE_DESCRIPTION("virt gpio clk gate platform device");
MODULE_LICENSE("GPL");
MODULE_AUTHOR("jerry_chg");
